#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
#include<string>

class A
{
private:
	int _a;
	int _b;
public:
	A(int a = 1, int b = 2)
		:_a(a)
		,_b(b)
	{
		
	}
	~A()
	{
		cout << "~A" << endl;
	}
};
class B
{
private:
	int _a;
	int _b;
public:
	B(int a = 1, int b = 2)
		:_a(a)
		, _b(b)
	{
		
	}
	~B()
	{
		cout << "~B" << endl;
	}
};
class C
{
private:
	int _a;
	int _b;
public:
	C(int a = 1, int b = 2)
		:_a(a)
		, _b(b)
	{
		
	}
	~C()
	{
		cout << "~C" << endl;
	}
};
class D
{
private:
	int _a;
	int _b;
public:
	D(int a = 1, int b = 2)
		:_a(a)
		, _b(b)
	{
	}
	~D()
	{
		cout << "~D" << endl;
	}
};

//C c;
int main()
{
	//A* pA = new A[5];
	//delete pA;
	//A* pa = new A();

	//B b;

	//static D d;

	//delete pa;
	string s1;
	string s2("Hello Cplusplus");
	string s3(s2);
	string s4("Hello Cplusplus", 5);
	string s5(s2, 1, 5);
	string s6(10, 'x');
	/*cout << s1 << endl;
	cout << s2 << endl;
	cout << s3 << endl;
	cout << s4 << endl;
	cout << s5 << endl;
	cout << s6 << endl;*/
	/*s2.append("xxx");*/
	//s2.push_back('x');
	//s2.insert(0, 2, 'x');
	//s2+= "sss";
	//s2.erase();
	//reverse(s2.begin(), s2.end());
	cout << s2 << endl;

	return 0;
}